// 入口函数 dom树创建完毕就执行
$(function () {
    $('#link_reg').on('click', function () {
        $('.reg-box').show();
        $('.login-box').hide();
    });

    $('#link_login').on('click', function () {
        $('.reg-box').hide();
        $('.login-box').show();
    })

    // 2.为layui添加表单自定义规则 从layui中获取form对象
    layui.form.verify({
        // 2.1使用数组来做自定义规则
        pwd: [/^[\S]{6,12}$/, '必须是6-12位非空字符串'],
        // 2.2 通过函数来校验两次密码是否一致的规则
        //通过形参拿到确认密码框中的内容
        // 返回值:如果校验失败,返回错消息给layui来提示
        //            如果成功,则返回undefined
        repwd: function (value) {
             //让layui为提交按钮添加点击事件，在内部完成校验，校验成功，触发表单的提交事件
            let strPwd = $('#txtPwd').val().trim();
            //    对比传入的确认 密码框的值
            if (strPwd !== value) return '两次密码不一致'
        }
    })

    // 3.注册表单提交事件
    // 注意:当layui校验通过后,会提交表单,触发表单的提交事件
    $('.reg-box>form.layui-form').on('submit', function (e) {
        e.preventDefault();
        // 3.1获取表单数据
        let strData = $(this).serialize()//键值对形式
        // console.log(strData);
        // 3.2将数据异步提交到服务器注册接口
        $.ajax({
            method: 'post',
            url: '/api/reguser',
            data: strData,
            success(res) {
                // 如果注册失败 提示消息,并跳出函数
                if (res.status !== 0) return layui.layer.msg(res.message);
                // 如果成功,则提示消息 并切换成登录盒子
                layui.layer.msg(res.message);
                // 用代码模拟去登录超链接被点击(从而切换到登录div显示)
                $('#link_login').trigger('click')
            }
        })
    })

    // 4.登录表单提交事件
    $('.login-box>form.layui-form').on('submit', function (e) {
        e.preventDefault();//阻止表单默认提交
        // 4.1获取表单数据
        let strData = $(this).serialize()//键值对形式
        // console.log(strData);
        // 4.2将数据异步提交到服务器注册接口
        $.ajax({
            method: 'post',
            url: '/api/login',
            data: strData,
            success(res) {
                // 如果注册失败 提示消息,并跳出函数
                if (res.status !== 0) return layui.layer.msg(res.message);

                // 如果成功,则提示消息 并保存token 并跳转到首页
                layui.layer.msg(res.message, {
                    icon: -1,
                    time: 1500 //1.5秒关闭（如果不配置，默认是3秒）
                }, function () {
                    //    将服务器返回的token数据保存到浏览器的sessionStorage中
                    sessionStorage.setItem('token', res.token);
                    location.href = '/index.html'
                    // 跳转到首页且不能返回
                    // location.replace('/index.html')
                });;

            }
        })
    })
});